package com.liu.mapper;



import java.util.List;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Result;
import org.apache.ibatis.annotations.Results;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.SelectProvider;
import org.apache.ibatis.annotations.Update;

import com.liu.po.UserInfo;

public interface UserInfoMapper {
 /**
  * 
  * 添加用户信息
  * @param userInfo
  * @return
  */
	@Insert("insert into user_info(user_name,user_sex) values(#{userName},#{userSex})")
	public int addUser(UserInfo UserInfo);
/**
 * 根据条件查询用户信息
 * @param userInfo
 * @return
 */
//	非动态sql写法
//	@Select("select * from user_info where user_name like #{userName}")
//	动态sql写法
	@SelectProvider(type=UserInfoDynaSqlProvider.class,method="queryUserByName")
//	使用注解时 注解实体映射方法
	@Results({
		@Result(id=true,property="userId",column="user_id"),
		@Result(property="userName",column="user_name"),
		@Result(property="userSex",column="user_sex")
	})
	public List<UserInfo> queryUserByName(UserInfo userInfo); 
	
	
	/**
	 * 修改用户信息
	 * @param userInfo
	 * @return
	 */
	@Update("update user_info set user_name=#{userName},user_sex=#{userSex} where user_id=#{userId}")
	public int updateUser(UserInfo userInfo); 
	/**
	 * 
	 * @param userInfo
	 * @return
	 */
	@Select("select * from user_info where user_id = #{userId}")
//	使用注解时 注解实体映射方法
	@Results({
		@Result(id=true,property="userId",column="user_id"),
		@Result(property="userName",column="user_name"),
		@Result(property="userSex",column="user_sex")
	})
	public UserInfo queryUserById(Integer userId); 
}
